<html><body><style type="text/css">
body {
  padding: 0;
  margin: 0;
  font: bold 11px/14px "Helvetica Neue", Helvetica, Arial, sans-serif;
  overflow: hidden;
}
.github-btn {
  height: 20px;
  overflow: hidden;
}
.gh-btn,
.gh-count,
.gh-ico {
  float: left;
}
.gh-btn,
.gh-count {
  padding: 2px 5px 2px 4px;
  color: #333;
  text-decoration: none;
  text-shadow: 0 1px 0 #fff;
  white-space: nowrap;
  cursor: pointer;
  border-radius: 3px;
}
.gh-btn {
  background-color: #eee;
  background-image: -moz-linear-gradient(#fcfcfc, #eee);
  background-image: -webkit-linear-gradient(#fcfcfc, #eee);
  background-image: linear-gradient(#fcfcfc, #eee);
  background-repeat: no-repeat;
  border: 1px solid #d5d5d5;
}
.gh-btn:hover,
.gh-btn:focus {
  text-decoration: none;
  background-color: #ddd;
  background-image: -moz-linear-gradient(#eee, #ddd);
  background-image: -webkit-linear-gradient(#eee, #ddd);
  background-image: linear-gradient(#eee, #ddd);
  border-color: #ccc;
}
.gh-btn:active {
  background-image: none;
  background-color: #dcdcdc;
  border-color: #b5b5b5;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);
}
.gh-ico {
  width: 14px;
  height: 14px;
  margin-right: 4px;
  background-image: url();
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
.gh-count {
  position: relative;
  display: none; /* hidden to start */
  margin-left: 4px;
  background-color: #fafafa;
  border: 1px solid #d4d4d4;
}
.gh-count:hover,
.gh-count:focus {
  color: #4183C4;
}
.gh-count:before,
.gh-count:after {
  content: '';
  position: absolute;
  display: inline-block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.gh-count:before {
  top: 50%;
  left: -3px;
  margin-top: -4px;
  border-width: 4px 4px 4px 0;
  border-right-color: #fafafa;
}
.gh-count:after {
  top: 50%;
  left: -4px;
  z-index: -1;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #d4d4d4;
}
.github-btn-large {
  height: 30px;
}
.github-btn-large .gh-btn,
.github-btn-large .gh-count {
  padding: 3px 10px 3px 8px;
  font-size: 16px;
  line-height: 22px;
  border-radius: 4px;
}
.github-btn-large .gh-ico {
  width: 20px;
  height: 20px;
}
.github-btn-large .gh-count {
  margin-left: 6px;
}
.github-btn-large .gh-count:before {
  left: -5px;
  margin-top: -6px;
  border-width: 6px 6px 6px 0;
}
.github-btn-large .gh-count:after {
  left: -6px;
  margin-top: -7px;
  border-width: 7px 7px 7px 0;
}
</style>
<span class="github-btn" id="github-btn">
  <a class="gh-btn" id="gh-btn" href="#" target="_blank">
    <span class="gh-ico"></span>
    <span class="gh-text" id="gh-text"></span>
  </a>
  <a class="gh-count" id="gh-count" href="#" target="_blank"></a>
</span>
<script>
  // Read a page's GET URL variables and return them as an associative array.
  // Source: http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html
  var params = function () {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++) {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  }()
  var user = params.user,
      repo = params.repo,
      type = params.type,
      count = params.count,
      size = params.size,
      v = params.v,
      head = document.getElementsByTagName('head')[0],
      button = document.getElementById('gh-btn'),
      mainButton = document.getElementById('github-btn'),
      text = document.getElementById('gh-text'),
      counter = document.getElementById('gh-count');


  // Add commas to numbers
  function addCommas(n) {
    return String(n).replace(/(\d)(?=(\d{3})+$)/g, '$1,')
  }

  function jsonp(path, cbName) {
    var el = document.createElement('script');
    el.src = path + '?callback='+ (cbName ? cbName : 'callback');
    head.insertBefore(el, head.firstChild);
  }

  function callback(obj) {
    switch (type) {
      case 'watch':
        if (v == '2') {
          counter.innerHTML = addCommas(obj.data.subscribers_count);
        } else {
          counter.innerHTML = addCommas(obj.data.stargazers_count);
        }
        break;
      case 'star':
        counter.innerHTML = addCommas(obj.data.stargazers_count);
        break;
      case 'fork':
        counter.innerHTML = addCommas(obj.data.network_count);
        break;
      case 'follow':
        counter.innerHTML = addCommas(obj.data.followers);
        break;
    }

    // Show the count if asked
    if (count == 'true' && counter.innerHTML !== 'undefined') {
      counter.style.display = 'block';
    }
  }

  // Set href to be URL for repo
  button.href = 'https://github.com/' + user + '/' + repo + '/';

  // Add the class, change the text label, set count link href
  switch (type) {
    case 'watch':
      if (v == '2') {
        mainButton.className += ' github-watchers';
        text.innerHTML = 'Watch';
        counter.href = 'https://github.com/' + user + '/' + repo + '/watchers';
      } else {
        mainButton.className += ' github-stargazers';
        text.innerHTML = 'Star';
        counter.href = 'https://github.com/' + user + '/' + repo + '/stargazers';
      }
      break;
    case 'star':
      mainButton.className += ' github-stargazers';
      text.innerHTML = 'Star';
      counter.href = 'https://github.com/' + user + '/' + repo + '/stargazers';
      break;
    case 'fork':
      mainButton.className += ' github-forks';
      text.innerHTML = 'Fork';
      button.href = 'https://github.com/' + user + '/' + repo + '/fork';
      counter.href = 'https://github.com/' + user + '/' + repo + '/network';
      break;
    case 'follow':
      mainButton.className += ' github-me';
      text.innerHTML = 'Follow @' + user;
      button.href = 'https://github.com/' + user;
      counter.href = 'https://github.com/' + user + '/followers';
      break;
  }

  // Change the size
  if (size == 'large') {
    mainButton.className += ' github-btn-large';
  }

  if (type == 'follow') {
    jsonp('https://api.github.com/users/' + user);
  } else {
    jsonp('https://api.github.com/repos/' + user + '/' + repo);
  }
</script></body></html>
